/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/itframe">itframe</a> All rights reserved.
 */
package com.rise.itframe.modules.inv.entity;

import java.util.Date;

import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.Length;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.rise.itframe.common.persistence.DataEntity;

/**
 * 发票登记信息Entity
 * @author ming
 * @version 2017-12-31
 */
@SuppressWarnings("serial")
public class InvInfo extends DataEntity<InvInfo> {

    private static final long serialVersionUID = 1L;
    private String invType;		// 发票类型
    private String invDeptName;		// 开票单位
    private Date invDate;		// 开票日期
    private String invCode;		// 开票编号
    private String claimType; // 报销类型
    private Double amout; // 开票金额
    private String status;		// 状态
    private Date invDateBegin; // 开票日期起
    private Date invDateEnd; // 开票日期至
    private String operateFlag; // 操作标记
    private String transactName;// 经办人
    private String transactId;// 经办人
    private String plateNo;
    private Integer psnQty;// 人数
    

    public Integer getPsnQty() {
        return psnQty;
    }

    public void setPsnQty(Integer psnQty) {
        this.psnQty = psnQty;
    }

    public String getClaimType() {
        return claimType;
    }

    public void setClaimType(String claimType) {
        this.claimType = claimType;
    }

    public String getPlateNo() {
        return plateNo;
    }

    public void setPlateNo(String plateNo) {
        this.plateNo = plateNo;
    }

    public String getTransactId() {
        return transactId;
    }

    public void setTransactId(String transactId) {
        this.transactId = transactId;
    }

    public String getTransactName() {
        return transactName;
    }

    public void setTransactName(String transactName) {
        this.transactName = transactName;
    }

    public String getOperateFlag() {
        return operateFlag;
    }

    public void setOperateFlag(String operateFlag) {
        this.operateFlag = operateFlag;
    }

    public Date getInvDateBegin() {
        return invDateBegin;
    }

    public void setInvDateBegin(Date invDateBegin) {
        this.invDateBegin = invDateBegin;
    }

    public Date getInvDateEnd() {
        return invDateEnd;
    }

    public void setInvDateEnd(Date invDateEnd) {
        this.invDateEnd = invDateEnd;
    }

    public InvInfo() {
        super();
    }

    public InvInfo(String id){
        super(id);
    }

    @Length(min=1, max=64, message="发票类型长度必须介于 1 和 64 之间")
    public String getInvType() {
        return invType;
    }

    public void setInvType(String invType) {
        this.invType = invType;
    }

    @Length(min=1, max=100, message="开票单位长度必须介于 1 和 100 之间")
    public String getInvDeptName() {
        return invDeptName;
    }

    public void setInvDeptName(String invDeptName) {
        this.invDeptName = invDeptName;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message="开票日期不能为空")
    public Date getInvDate() {
        return invDate;
    }

    public void setInvDate(Date invDate) {
        this.invDate = invDate;
    }

    @Length(min=1, max=100, message="开票编号长度必须介于 1 和 100 之间")
    public String getInvCode() {
        return invCode;
    }

    public void setInvCode(String invCode) {
        this.invCode = invCode;
    }

    public Double getAmout() {
        return amout;
    }

    public void setAmout(Double amout) {
        this.amout = amout;
    }

    @Length(min=1, max=4, message="状态长度必须介于 1 和 4 之间")
    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

}